Nacionales

Poblaciones por Región

Confirmados, Hospitalizados, Recuperados, Cuidados Intensivos & Fallecidos por Día

Confirmados vs Hospitalizados, Recuperados, Cuidados Intensivos, Fallecidos

  • De manera general, pareciera que a medida que se ha disparado la cantidad de Confirmados, los indicadores que más rápido crecen son los Hospitalizados & Recuperados

  • Una interpretación de lo anterior, podría ser que, a nivel Nacional, el hecho de que no haya tanta cercanía entre esas métricas y las de Fallecidos, podria ser un buen indicador, al menos en términos absolutos y ya faltará ver por Región y en términos relativos

Por Región

Confirmados vs Hospitalizados, Recuperados, Cuidados Intensivos, Fallecidos

Joining, by = "Region00"
  • A nivel Nacional, habíamos visto que, conforme crecían los Confirmados, los Hospitalizados & los Recuperados estaban prácticamente al mismo nivel, aunque ligéramente superior el primero

  • Sin embargo, es interesante ver, cómo por Región, los comportamientos varían de vez en vez

  • Por ejemplo, en Madrid, la tercera Región más poblada, esto se revierte, es decir, la cantidad de Hospitalizados parece ser significativamente inferior a la de Recuperados conforme aumentan las cantidades de Infectados

Confirmados por dìa & por Región

  • En general, comportamientos muy parecidos entre las regiones, siendo Madrid la Región con más infectados hasta un punto de 785,741 casos vs el segundo lugar que lo tiene Cataluña a pesar que ésta tiene al 16% de la población en comparación con el 14% que representa la que tiene a la capital del país.

Hospitalizados por dìa & por Región

  • En general, comportamientos muy parecidos entre las regiones, excepto Madrid.

  • Para el 30 de marzo, Madrid alentó el aumento en sus hospitalizados, al punto que para el 1 de abril empezó un descenso importante

  • Esto contrasta con el comportamiento en Cataluña, donde es evidente el aceleramiento en la cantidad de hospitalzados, a pesar que Madrid tiene más cantidad de infectados y menos población

Recuperados por dìa & por Región

  • En general, comportamientos muy parecidos entre las regiones, siendo Madrid la Región con más recuperados, probablente fruto de tener también más infectados

Cuidados Intensivos por dìa & por Región

  • Comportamiento muy parecido al de Hospitalizados, lo cual hace sentido pues los que llegan a Cuidadis Intensivos tuvieron que haber pasado antes por seer hospitalizados

Fallecidos por dìa & por Región

  • En general, comportamientos muy parecidos entre las regiones y también al observado en los Recuperados, siendo Madrid la Región que presenta más casos de personas que degraciadamente han perdido la vida, probablemente fruto también de tener más infectados
LS0tCnRpdGxlOiAiRURBIC0gMDIiCnN1YnRpdGxlOiAiR3LDoWZpY2FzIDFlcmEgUGFydGU6IEFic29sdXRvcyIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3IsaW5jbHVkZT1GQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBGKQprbml0cjo6b3B0c19jaHVuayRzZXQoaW5jbHVkZSA9IFQpCmxpYnJhcnkoZHBseXIpCmxpYnJhcnkodGlkeXIpCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShwbG90bHkpCmBgYAoKYGBge3J9CmlmKCFleGlzdHMoImFsbF9nYXRoZXIwMiIpKXsKICBhbGxfZ2F0aGVyMDI8LXJlYWRSRFMoImRhdGEvdGFzYXNfZGlhcmlhc194X3JlZ2lvbl8wMi5yZHMiKQp9CmFsbF9nYXRoZXIwMiU+JQogIG11dGF0ZSgKICAgIG1lc2RpYT1yb3VuZChtZXNkaWEsMikKICApCmBgYAoKIyBOYWNpb25hbGVzIHsudGFic2V0fQoKIyMgUG9ibGFjaW9uZXMgcG9yIFJlZ2nDs24KYGBge3IsZmlnLndpZHRoPTEwLGZpZy5oZWlnaHQ9NyxmaWcuYWxpZ249J2xlZnQnfQphbGxfZ2F0aGVyMDJfcG9ibG5sPC1hbGxfZ2F0aGVyMDIlPiUKICAgICAgICAgICAgICAgZmlsdGVyKCFSZWdpb24laW4lIk5hY2lvbmFsIiklPiUKICAgICAgICAgICAgICAgZGlzdGluY3QoUmVnaW9uLFRPVEFMRVMpJT4lCiAgICAgICAgICAgICAgIGFycmFuZ2UoZGVzYyhUT1RBTEVTKSklPiUKICAgICAgICAgICAgICAgbXV0YXRlKAogICAgICAgICAgICAgICAgIFJlZ2lvbjAwPVJlZ2lvbiwKICAgICAgICAgICAgICAgICBSZWdpb249YXMuZmFjdG9yKAogICAgICAgICAgICAgICAgICAgcGFzdGUwKAogICAgICAgICAgICAgICAgICAgICBsZXR0ZXJzWzE6bnJvdyguKV0sIi4iLAogICAgICAgICAgICAgICAgICAgICBSZWdpb24pKSwKICAgICAgICAgICAgICAgICBwcm9wPXJvdW5kKFRPVEFMRVMvc3VtKFRPVEFMRVMpLDMpCiAgICAgICAgICAgICAgICkKZ2cwMDwtZ2dwbG90KGFsbF9nYXRoZXIwMl9wb2JsbmwsI3Bhc3RlMCh2YXJ0bXAsIiE9LTk5IikpLCAKICAgICAgICAgICAgIGFlcyh4PVJlZ2lvbiwgZ3JvdXA9MSkpCgpnZ3Bsb3RseSgKICAgIGdnMDAgKwogICAgICBnZW9tX2xpbmUoYWVzX3N0cmluZyh5PSJwcm9wIikpICsgCiAgICAgIHRoZW1lKAogICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gOTAsIGhqdXN0ID0gMSkjLAogICMgYXhpcy50ZXh0LnkgPSBlbGVtZW50X2JsYW5rKCkjLAogICMgYXhpcy50aWNrcyA9IGVsZW1lbnRfYmxhbmsoKQogICkrCiAgICAjIHNjYWxlX3lfZGlzY3JldGUoCiAgICBzY2FsZV95X2NvbnRpbnVvdXMoCiAgICBuYW1lPSIlIGRlIGxhIFBvYmxhY2nDs24gTmFjaW9uYWwiLAogICAgYnJlYWtzPXNlcSgwLC4yLC4wMjUpLAogICAgbGFiZWxzPXBhc3RlMChzZXEoMCwuMiwuMDI1KSoxMDAsIiAlIikKICApKwogICAgICBsYWJzKHRpdGxlID0gIlBvYmxhY2nDs24gcG9yIFJlZ2nDs24iKQopCmBgYAoKYGBge3J9CmFsbF9nYXRoZXIwMl9wb2JsbmwlPiUKICBtdXRhdGUoCiAgICBQb2JsYWNpb249Zm9ybWF0KFRPVEFMRVMsIG5zbWFsbD0xLCBiaWcubWFyaz0iLCIpLAogICAgUG9yY2VudGFqZT1wYXN0ZTAocHJvcCoxMDAsIiAlIikKICApJT4lCiAgc2VsZWN0KC1wcm9wLC1UT1RBTEVTLC1SZWdpb24pJT4lCiAgcmVuYW1lKFJlZ2lvbj1SZWdpb24wMCkKYGBgCgojIyBDb25maXJtYWRvcywgSG9zcGl0YWxpemFkb3MsIFJlY3VwZXJhZG9zLCBDdWlkYWRvcyBJbnRlbnNpdm9zICYgRmFsbGVjaWRvcyBwb3IgRMOtYQpgYGB7cixmaWcud2lkdGg9MTAsZmlnLmhlaWdodD03LGZpZy5hbGlnbj0nbGVmdCd9CnZhcnRtcDwtImNpZnJhcyIKZ2cwMDwtZ2dwbG90KGFsbF9nYXRoZXIwMiU+JQogICAgICAgICAgICAgICBzZWxlY3QoLVRPVEFMRVMsLXN0YXJ0c193aXRoKCJ0YXNhXyIpLC1zdGFydHNfd2l0aCgiZ2FwXyIpKSU+JQogICAgICAgICAgICAgICBmaWx0ZXIoUmVnaW9uJWluJWMoIk5hY2lvbmFsIikpJT4lCiAgICAgICAgICAgICAgICMgZmlsdGVyXyguZG90cyA9IHBhc3RlMCh2YXJ0bXAsIiA+IDAiKSklPiUjcGFzdGUwKHZhcnRtcCwiIT0tOTkiKSklPiUKICAgICAgICAgICAgICAgbXV0YXRlKAogICAgICAgICAgICAgICAgIG1lc2RpYT1hcy5mYWN0b3IoYXMuY2hhcmFjdGVyLm51bWVyaWNfdmVyc2lvbihyb3VuZChtZXNkaWEsMikpKSwKICAgICAgICAgICAgICAgICBSZWdpb249YXMuZmFjdG9yKFJlZ2lvbikKICAgICAgICAgICAgICAgKSU+JQogICAgICAgICAgICAgICBnYXRoZXIobWV0cmljYSxjaWZyYXMsLVJlZ2lvbiwtbWVzZGlhKSU+JQogICAgICAgICAgICAgICBmaWx0ZXJfKC5kb3RzID0gcGFzdGUwKHZhcnRtcCwiID49IDAiKSksI3Bhc3RlMCh2YXJ0bXAsIiE9LTk5IikpLCAKICAgICAgICAgICAgIGFlcyh4PW1lc2RpYSxjb2xvdXI9bWV0cmljYSxncm91cD0xKSkKCmdncGxvdGx5KAogICAgZ2cwMCArCiAgICAgIGdlb21fbGluZShhZXNfc3RyaW5nKHk9dmFydG1wKSkgKyAKICAgICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxKSkrCiAgICAgIGxhYnModGl0bGUgPSAiTcOpdHJpY2FzIE5hY2lvbmFsZXMgcG9yIGTDrWEiKQopCmBgYAoKCiMjIENvbmZpcm1hZG9zIHZzIEhvc3BpdGFsaXphZG9zLCBSZWN1cGVyYWRvcywgQ3VpZGFkb3MgSW50ZW5zaXZvcywgRmFsbGVjaWRvcwoKYGBge3IsZmlnLndpZHRoPTEwLGZpZy5oZWlnaHQ9NyxmaWcuYWxpZ249J2xlZnQnfQp2YXJ0bXBfeDwtIkNvbmZpcm1hZG9zRXN0aW1hZG9zIgp2YXJ0bXA8LSJjaWZyYXMiCmdnMDA8LWdncGxvdChhbGxfZ2F0aGVyMDIlPiUKICAgICAgICAgICAgICAgc2VsZWN0KC1UT1RBTEVTLC1zdGFydHNfd2l0aCgidGFzYV8iKSwtc3RhcnRzX3dpdGgoImdhcF8iKSklPiUKICAgICAgICAgICAgICAgZmlsdGVyKFJlZ2lvbiVpbiVjKCJOYWNpb25hbCIpKSU+JQogICAgICAgICAgICAgICAjIGZpbHRlcl8oLmRvdHMgPSBwYXN0ZTAodmFydG1wLCIgPiAwIikpJT4lI3Bhc3RlMCh2YXJ0bXAsIiE9LTk5IikpJT4lCiAgICAgICAgICAgICAgIG11dGF0ZSgKICAgICAgICAgICAgICAgICBtZXNkaWE9YXMuZmFjdG9yKGFzLmNoYXJhY3Rlci5udW1lcmljX3ZlcnNpb24ocm91bmQobWVzZGlhLDIpKSksCiAgICAgICAgICAgICAgICAgUmVnaW9uPWFzLmZhY3RvcihSZWdpb24pCiAgICAgICAgICAgICAgICklPiUKICAgICAgICAgICAgICAgZ2F0aGVyKG1ldHJpY2EsY2lmcmFzLC1vbmVfb2YoYygiUmVnaW9uIiwibWVzZGlhIix2YXJ0bXBfeCkpKSU+JQogICAgICAgICAgICAgICBmaWx0ZXJfKC5kb3RzID0gcGFzdGUwKHZhcnRtcCwiID49IDAiKSksI3Bhc3RlMCh2YXJ0bXAsIiE9LTk5IikpLCAKICAgICAgICAgICAgIGFlcyhjb2xvdXI9bWV0cmljYSxncm91cD0xKSkKCmdncGxvdGx5KAogICAgZ2cwMCArCiAgICAgIGdlb21fcG9pbnQoYWVzX3N0cmluZyh4PXZhcnRtcF94LHk9dmFydG1wKSkgKyAKICAgICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxKSkrCiAgICAgIGxhYnModGl0bGUgPSAiQ29uZmlybWFkb3MgKGVzdGltYWRvcykgdnMgbGFzIG90cmFzIE3DqXRyaWNhcyBOYWNpb25hbGVzIikKKQpgYGAKLSBEZSBtYW5lcmEgZ2VuZXJhbCwgcGFyZWNpZXJhIHF1ZSBhIG1lZGlkYSBxdWUgc2UgaGEgZGlzcGFyYWRvIGxhIGNhbnRpZGFkIGRlICoqQ29uZmlybWFkb3MqKiwgbG9zIGluZGljYWRvcmVzIHF1ZSBtw6FzIHLDoXBpZG8gY3JlY2VuIHNvbiBsb3MgKipIb3NwaXRhbGl6YWRvcyoqICYgKipSZWN1cGVyYWRvcyoqCgotIFVuYSBpbnRlcnByZXRhY2nDs24gZGUgbG8gYW50ZXJpb3IsIHBvZHLDrWEgc2VyIHF1ZSwgYSBuaXZlbCBOYWNpb25hbCwgZWwgaGVjaG8gZGUgcXVlIG5vIGhheWEgdGFudGEgY2VyY2Fuw61hIGVudHJlIGVzYXMgbcOpdHJpY2FzIHkgbGFzIGRlIEZhbGxlY2lkb3MsIHBvZHJpYSBzZXIgdW4gYnVlbiBpbmRpY2Fkb3IsIGFsIG1lbm9zIGVuIHTDqXJtaW5vcyBhYnNvbHV0b3MgeSB5YSBmYWx0YXLDoSB2ZXIgcG9yIFJlZ2nDs24geSBlbiB0w6lybWlub3MgcmVsYXRpdm9zCgojIFBvciBSZWdpw7NuIHsudGFic2V0fQoKIyMgQ29uZmlybWFkb3MgdnMgSG9zcGl0YWxpemFkb3MsIFJlY3VwZXJhZG9zLCBDdWlkYWRvcyBJbnRlbnNpdm9zLCBGYWxsZWNpZG9zCmBgYHtyLGZpZy53aWR0aD0xMCxmaWcuaGVpZ2h0PTEwLGZpZy5hbGlnbj0nbGVmdCd9CnZhcnRtcF94PC0iQ29uZmlybWFkb3NFc3RpbWFkb3MiCnZhcnRtcDwtImNpZnJhcyIKZ2cwMDwtZ2dwbG90KGFsbF9nYXRoZXIwMiU+JQogICAgICAgICAgICAgICBzZWxlY3QoLVRPVEFMRVMsLXN0YXJ0c193aXRoKCJ0YXNhXyIpLC1zdGFydHNfd2l0aCgiZ2FwXyIpKSU+JQogICAgICAgICAgICAgICBmaWx0ZXIoIVJlZ2lvbiVpbiVjKCJOYWNpb25hbCIpKSU+JQogICAgICAgICAgICAgICByZW5hbWUoUmVnaW9uMDA9UmVnaW9uKSU+JQogICAgICAgICAgICAgICBsZWZ0X2pvaW4oCiAgICAgICAgICAgICAgICAgYWxsX2dhdGhlcjAyX3BvYmxubCU+JQogICAgICAgICAgICAgICAgICAgc2VsZWN0KFJlZ2lvbixSZWdpb24wMCkKICAgICAgICAgICAgICAgKSU+JQogICAgICAgICAgICAgICAjIGZpbHRlcl8oLmRvdHMgPSBwYXN0ZTAodmFydG1wLCIgPiAwIikpJT4lI3Bhc3RlMCh2YXJ0bXAsIiE9LTk5IikpJT4lCiAgICAgICAgICAgICAgIG11dGF0ZSgKICAgICAgICAgICAgICAgICBtZXNkaWE9YXMuZmFjdG9yKGFzLmNoYXJhY3Rlci5udW1lcmljX3ZlcnNpb24ocm91bmQobWVzZGlhLDIpKSksCiAgICAgICAgICAgICAgICAgUmVnaW9uPWFzLmZhY3RvcihSZWdpb24pCiAgICAgICAgICAgICAgICklPiUKICAgICAgICAgICAgICAgZ2F0aGVyKG1ldHJpY2EsY2lmcmFzLC1vbmVfb2YoYygiUmVnaW9uMDAiLCJSZWdpb24iLCJtZXNkaWEiLHZhcnRtcF94KSkpJT4lCiAgICAgICAgICAgICAgIGZpbHRlcl8oLmRvdHMgPSBwYXN0ZTAodmFydG1wLCIgPj0gMCIpKSwjcGFzdGUwKHZhcnRtcCwiIT0tOTkiKSksIAogICAgICAgICAgICAgYWVzKGNvbG91cj1tZXRyaWNhLGdyb3VwPTEpKSArCiAgZmFjZXRfd3JhcCh+UmVnaW9uLHNjYWxlcyA9ICJmcmVlIixucm93ID0gNCkgKwogIHRoZW1lKHN0cmlwLmJhY2tncm91bmQgPSBlbGVtZW50X2JsYW5rKCksIHN0cmlwLnBsYWNlbWVudCA9ICJvdXRzaWRlIikKIyBwcmludCgKZ2dwbG90bHkoCiAgICBnZzAwICsKICAgICAgZ2VvbV9wb2ludChhZXNfc3RyaW5nKHg9dmFydG1wX3gseT12YXJ0bXApKSArIAogICAgICB0aGVtZV92b2lkKCkgKyB0aGVtZShsZWdlbmQucG9zaXRpb249Im5vbmUiKSsKICAgICAgbGFicyh0aXRsZSA9ICJDb25maXJtYWRvcyAoZXN0aW1hZG9zKSB2cyBsYXMgb3RyYXMgTcOpdHJpY2FzIHBvciBSZWdpw7NuIikKICAgICAgIyB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDkwLCBoanVzdCA9IDEpKQopCiMgKQpgYGAKCi0gQSBuaXZlbCBOYWNpb25hbCwgaGFiw61hbW9zIHZpc3RvIHF1ZSwgY29uZm9ybWUgY3JlY8OtYW4gbG9zICoqQ29uZmlybWFkb3MqKiwgbG9zICoqSG9zcGl0YWxpemFkb3MqKiAmIGxvcyAqKlJlY3VwZXJhZG9zKiogZXN0YWJhbiBwcsOhY3RpY2FtZW50ZSBhbCBtaXNtbyBuaXZlbCwgYXVucXVlIGxpZ8OpcmFtZW50ZSBzdXBlcmlvciBlbCBwcmltZXJvCgotIFNpbiBlbWJhcmdvLCBlcyBpbnRlcmVzYW50ZSB2ZXIsIGPDs21vIHBvciBSZWdpw7NuLCBsb3MgY29tcG9ydGFtaWVudG9zIHZhcsOtYW4gZGUgdmV6IGVuIHZlegoKLSBQb3IgZWplbXBsbywgZW4gYE1hZHJpZGAsIGxhICoqdGVyY2VyYSBSZWdpw7NuIG3DoXMgcG9ibGFkYSoqLCBlc3RvIHNlIHJldmllcnRlLCBlcyBkZWNpciwgbGEgY2FudGlkYWQgZGUgKipIb3NwaXRhbGl6YWRvcyoqIHBhcmVjZSBzZXIgc2lnbmlmaWNhdGl2YW1lbnRlICoqaW5mZXJpb3IqKiBhIGxhIGRlICoqUmVjdXBlcmFkb3MqKiBjb25mb3JtZSBhdW1lbnRhbiBsYXMgY2FudGlkYWRlcyBkZSAqKkluZmVjdGFkb3MqKgoKIyMgQ29uZmlybWFkb3MgcG9yIGTDrGEgJiBwb3IgUmVnacOzbiAKYGBge3IsZmlnLndpZHRoPTEwLGZpZy5oZWlnaHQ9NyxmaWcuYWxpZ249J2xlZnQnfQp2YXJ0bXA8LSJDb25maXJtYWRvc0VzdGltYWRvcyIKZ2cwMDwtZ2dwbG90KGFsbF9nYXRoZXIwMiU+JQogICAgICAgICAgICAgICBmaWx0ZXIoIVJlZ2lvbiVpbiVjKCJOYWNpb25hbCIpKSU+JQogICAgICAgICAgICAgICBmaWx0ZXJfKC5kb3RzID0gcGFzdGUwKHZhcnRtcCwiID4gMCIpKSU+JSNwYXN0ZTAodmFydG1wLCIhPS05OSIpKSU+JQogICAgICAgICAgICAgICBtdXRhdGUoCiAgICAgICAgICAgICAgICAgbWVzZGlhPWFzLmZhY3Rvcihhcy5jaGFyYWN0ZXIubnVtZXJpY192ZXJzaW9uKHJvdW5kKG1lc2RpYSwyKSkpLAogICAgICAgICAgICAgICAgIFJlZ2lvbj1hcy5mYWN0b3IoUmVnaW9uKQogICAgICAgICAgICAgICApLCBhZXMoeD1tZXNkaWEsY29sb3VyPVJlZ2lvbixncm91cD0xKSkKCmdncGxvdGx5KAogICAgZ2cwMCArCiAgICAgIGdlb21fbGluZShhZXNfc3RyaW5nKHk9dmFydG1wKSkgKyAKICAgICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxKSkrCiAgICAgIGxhYnModGl0bGUgPSBwYXN0ZTAodmFydG1wLCIgcG9yIGTDrWEgJiBwb3IgUmVnacOzbiIpKQopCmBgYAoKLSBFbiBnZW5lcmFsLCAqKmNvbXBvcnRhbWllbnRvcyBtdXkgcGFyZWNpZG9zKiogZW50cmUgbGFzIHJlZ2lvbmVzLCBzaWVuZG8gKipgTWFkcmlkYCoqIGxhIFJlZ2nDs24gY29uIG3DoXMgaW5mZWN0YWRvcyBoYXN0YSB1biBwdW50byBkZSAqKjc4NSw3NDEqKiBjYXNvcyAqdnMqIGVsIHNlZ3VuZG8gbHVnYXIgcXVlIGxvIHRpZW5lICoqYENhdGFsdcOxYWAqKiBhIHBlc2FyIHF1ZSDDqXN0YSB0aWVuZSBhbCAqKjE2JSoqIGRlIGxhIHBvYmxhY2nDs24gZW4gY29tcGFyYWNpw7NuIGNvbiBlbCAqKjE0JSoqIHF1ZSByZXByZXNlbnRhIGxhIHF1ZSB0aWVuZSBhIGxhIGNhcGl0YWwgZGVsIHBhw61zLgoKIyMgSG9zcGl0YWxpemFkb3MgcG9yIGTDrGEgJiBwb3IgUmVnacOzbiAKYGBge3IsZmlnLndpZHRoPTEwLGZpZy5oZWlnaHQ9NyxmaWcuYWxpZ249J2xlZnQnfQp2YXJ0bXA8LSJIb3NwaXRhbGl6YWRvcyIKZ2cwMDwtZ2dwbG90KGFsbF9nYXRoZXIwMiU+JQogICAgICAgICAgICAgICBmaWx0ZXIoIVJlZ2lvbiVpbiVjKCJOYWNpb25hbCIpKSU+JQogICAgICAgICAgICAgICBmaWx0ZXJfKC5kb3RzID0gcGFzdGUwKHZhcnRtcCwiID4gMCIpKSU+JSNwYXN0ZTAodmFydG1wLCIhPS05OSIpKSU+JQogICAgICAgICAgICAgICBtdXRhdGUoCiAgICAgICAgICAgICAgICAgbWVzZGlhPWFzLmZhY3Rvcihhcy5jaGFyYWN0ZXIubnVtZXJpY192ZXJzaW9uKHJvdW5kKG1lc2RpYSwyKSkpLAogICAgICAgICAgICAgICAgIFJlZ2lvbj1hcy5mYWN0b3IoUmVnaW9uKQogICAgICAgICAgICAgICApLCBhZXMoeD1tZXNkaWEsY29sb3VyPVJlZ2lvbixncm91cD0xKSkKCmdncGxvdGx5KAogICAgZ2cwMCArCiAgICAgIGdlb21fbGluZShhZXNfc3RyaW5nKHk9dmFydG1wKSkgKyAKICAgICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxKSkrCiAgICAgIGxhYnModGl0bGUgPSBwYXN0ZTAodmFydG1wLCIgcG9yIGTDrWEgJiBwb3IgUmVnacOzbiIpKQopCmBgYAoKCi0gRW4gZ2VuZXJhbCwgKipjb21wb3J0YW1pZW50b3MgbXV5IHBhcmVjaWRvcyoqIGVudHJlIGxhcyByZWdpb25lcywgKipleGNlcHRvIGBNYWRyaWRgKiouCgotIFBhcmEgZWwgKiozMCBkZSBtYXJ6byoqLCBNYWRyaWQgYWxlbnTDsyBlbCBhdW1lbnRvIGVuIHN1cyBob3NwaXRhbGl6YWRvcywgYWwgcHVudG8gcXVlIHBhcmEgZWwgKioxIGRlIGFicmlsKiogZW1wZXrDsyB1biAqKmRlc2NlbnNvIGltcG9ydGFudGUqKgoKLSBFc3RvIGNvbnRyYXN0YSBjb24gZWwgY29tcG9ydGFtaWVudG8gZW4gKipDYXRhbHXDsWEqKiwgZG9uZGUgZXMgZXZpZGVudGUgZWwgYWNlbGVyYW1pZW50byBlbiBsYSBjYW50aWRhZCBkZSBob3NwaXRhbHphZG9zLCBhIHBlc2FyIHF1ZSAqKmBNYWRyaWRgKiogdGllbmUgKm3DoXMgY2FudGlkYWQgZGUgaW5mZWN0YWRvcyogeSAqbWVub3MgcG9ibGFjacOzbioKCiMjIFJlY3VwZXJhZG9zIHBvciBkw6xhICYgcG9yIFJlZ2nDs24KYGBge3IsZmlnLndpZHRoPTEwLGZpZy5oZWlnaHQ9NyxmaWcuYWxpZ249J2xlZnQnfQp2YXJ0bXA8LSJSZWN1cGVyYWRvcyIKZ2cwMDwtZ2dwbG90KGFsbF9nYXRoZXIwMiU+JQogICAgICAgICAgICAgICBmaWx0ZXIoIVJlZ2lvbiVpbiVjKCJOYWNpb25hbCIpKSU+JQogICAgICAgICAgICAgICBmaWx0ZXJfKC5kb3RzID0gcGFzdGUwKHZhcnRtcCwiID4gMCIpKSU+JSNwYXN0ZTAodmFydG1wLCIhPS05OSIpKSU+JQogICAgICAgICAgICAgICBtdXRhdGUoCiAgICAgICAgICAgICAgICAgbWVzZGlhPWFzLmZhY3Rvcihhcy5jaGFyYWN0ZXIubnVtZXJpY192ZXJzaW9uKHJvdW5kKG1lc2RpYSwyKSkpLAogICAgICAgICAgICAgICAgIFJlZ2lvbj1hcy5mYWN0b3IoUmVnaW9uKQogICAgICAgICAgICAgICApLCBhZXMoeD1tZXNkaWEsY29sb3VyPVJlZ2lvbixncm91cD0xKSkKCmdncGxvdGx5KAogICAgZ2cwMCArCiAgICAgIGdlb21fbGluZShhZXNfc3RyaW5nKHk9dmFydG1wKSkgKyAKICAgICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxKSkrCiAgICAgIGxhYnModGl0bGUgPSBwYXN0ZTAodmFydG1wLCIgcG9yIGTDrWEgJiBwb3IgUmVnacOzbiIpKQopCmBgYAoKCi0gRW4gZ2VuZXJhbCwgKipjb21wb3J0YW1pZW50b3MgbXV5IHBhcmVjaWRvcyoqIGVudHJlIGxhcyByZWdpb25lcywgc2llbmRvICoqYE1hZHJpZGAqKiBsYSBSZWdpw7NuIGNvbiBtw6FzIHJlY3VwZXJhZG9zLCBwcm9iYWJsZW50ZSBmcnV0byBkZSB0ZW5lciB0YW1iacOpbiBtw6FzIGluZmVjdGFkb3MKCiMjIEN1aWRhZG9zIEludGVuc2l2b3MgcG9yIGTDrGEgJiBwb3IgUmVnacOzbgpgYGB7cixmaWcud2lkdGg9MTAsZmlnLmhlaWdodD03LGZpZy5hbGlnbj0nbGVmdCd9CnZhcnRtcDwtIkN1aWRhZG9zSW50ZW5zaXZvcyIKZ2cwMDwtZ2dwbG90KGFsbF9nYXRoZXIwMiU+JQogICAgICAgICAgICAgICBmaWx0ZXIoIVJlZ2lvbiVpbiVjKCJOYWNpb25hbCIpKSU+JQogICAgICAgICAgICAgICBmaWx0ZXJfKC5kb3RzID0gcGFzdGUwKHZhcnRtcCwiID4gMCIpKSU+JSNwYXN0ZTAodmFydG1wLCIhPS05OSIpKSU+JQogICAgICAgICAgICAgICBtdXRhdGUoCiAgICAgICAgICAgICAgICAgbWVzZGlhPWFzLmZhY3Rvcihhcy5jaGFyYWN0ZXIubnVtZXJpY192ZXJzaW9uKHJvdW5kKG1lc2RpYSwyKSkpLAogICAgICAgICAgICAgICAgIFJlZ2lvbj1hcy5mYWN0b3IoUmVnaW9uKQogICAgICAgICAgICAgICApLCBhZXMoeD1tZXNkaWEsY29sb3VyPVJlZ2lvbixncm91cD0xKSkKCmdncGxvdGx5KAogICAgZ2cwMCArCiAgICAgIGdlb21fbGluZShhZXNfc3RyaW5nKHk9dmFydG1wKSkgKyAKICAgICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxKSkrCiAgICAgIGxhYnModGl0bGUgPSBwYXN0ZTAodmFydG1wLCIgcG9yIGTDrWEgJiBwb3IgUmVnacOzbiIpKQopCmBgYAoKLSBDb21wb3J0YW1pZW50byBtdXkgcGFyZWNpZG8gYWwgZGUgKipIb3NwaXRhbGl6YWRvcyoqLCBsbyBjdWFsIGhhY2Ugc2VudGlkbyBwdWVzIGxvcyBxdWUgbGxlZ2FuIGEgKipDdWlkYWRpcyBJbnRlbnNpdm9zKiogdHV2aWVyb24gcXVlIGhhYmVyIHBhc2FkbyBhbnRlcyBwb3Igc2VlciAqaG9zcGl0YWxpemFkb3MqCgojIyBGYWxsZWNpZG9zIHBvciBkw6xhICYgcG9yIFJlZ2nDs24KYGBge3IsZmlnLndpZHRoPTEwLGZpZy5oZWlnaHQ9NyxmaWcuYWxpZ249J2xlZnQnfQp2YXJ0bXA8LSJGYWxsZWNpZG9zIgpnZzAwPC1nZ3Bsb3QoYWxsX2dhdGhlcjAyJT4lCiAgICAgICAgICAgICAgIGZpbHRlcighUmVnaW9uJWluJWMoIk5hY2lvbmFsIikpJT4lCiAgICAgICAgICAgICAgIGZpbHRlcl8oLmRvdHMgPSBwYXN0ZTAodmFydG1wLCIgPiAwIikpJT4lI3Bhc3RlMCh2YXJ0bXAsIiE9LTk5IikpJT4lCiAgICAgICAgICAgICAgIG11dGF0ZSgKICAgICAgICAgICAgICAgICBtZXNkaWE9YXMuZmFjdG9yKGFzLmNoYXJhY3Rlci5udW1lcmljX3ZlcnNpb24ocm91bmQobWVzZGlhLDIpKSksCiAgICAgICAgICAgICAgICAgUmVnaW9uPWFzLmZhY3RvcihSZWdpb24pCiAgICAgICAgICAgICAgICksIGFlcyh4PW1lc2RpYSxjb2xvdXI9UmVnaW9uLGdyb3VwPTEpKQoKZ2dwbG90bHkoCiAgICBnZzAwICsKICAgICAgZ2VvbV9saW5lKGFlc19zdHJpbmcoeT12YXJ0bXApKSArIAogICAgICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDkwLCBoanVzdCA9IDEpKSsKICAgICAgbGFicyh0aXRsZSA9IHBhc3RlMCh2YXJ0bXAsIiBwb3IgZMOtYSAmIHBvciBSZWdpw7NuIikpCikKYGBgCgotIEVuIGdlbmVyYWwsICoqY29tcG9ydGFtaWVudG9zIG11eSBwYXJlY2lkb3MqKiBlbnRyZSBsYXMgcmVnaW9uZXMgeSB0YW1iacOpbiBhbCBvYnNlcnZhZG8gZW4gbG9zICoqUmVjdXBlcmFkb3MqKiwgc2llbmRvICoqYE1hZHJpZGAqKiBsYSBSZWdpw7NuIHF1ZSBwcmVzZW50YSBtw6FzIGNhc29zIGRlIHBlcnNvbmFzIHF1ZSBkZWdyYWNpYWRhbWVudGUgaGFuIHBlcmRpZG8gbGEgdmlkYSwgcHJvYmFibGVtZW50ZSBmcnV0byB0YW1iacOpbiBkZSB0ZW5lciBtw6FzIGluZmVjdGFkb3M=